Data from get_nlcd()
Data source: https://www.mrlc.gov/
Data was retrieved using the FedData library, get_nlcd function. The function returns a RasterLayer of NLCD data cropped to a given template study area. In this project, we pulled the impervious surfaces and tree canopy data to then analyze based on different tracts, blocks in various locations around Virginia.
library(tidyverse)
library(leaflet)
library(sp)
library(viridis)
library(raster)
library(knitr)
library(dplyr)
library(kableExtra)
Charlottesville Region
cville_tracts <- readRDS("Cville_Tree/cville_tracts.RDS")
cville_blkgps <- readRDS("Cville_Tree/cville_blkgps.RDS")
cville_blocks <- readRDS("Cville_Tree/cville_blocks.RDS")
Tracts
cvl_tracts <- read.csv("Cville_Tree/nlcd_tree_cville_tracts.csv")%>%
dplyr::select(-c(5,7,8))
cvl_tracts <- cvl_tracts[order(cvl_tracts$TRACTCE), ]
kable(head(cvl_tracts))%>%
kable_styling(font_size = 12)
|
|
STATEFP
|
COUNTYFP
|
TRACTCE
|
GEOID
|
NAMELSAD
|
tree_can
|
|
19
|
51
|
540
|
201
|
5.154e+10
|
Census Tract 2.01
|
32.76820
|
|
41
|
51
|
540
|
202
|
5.154e+10
|
Census Tract 2.02
|
11.58013
|
|
42
|
51
|
540
|
302
|
5.154e+10
|
Census Tract 3.02
|
25.91021
|
|
43
|
51
|
540
|
401
|
5.154e+10
|
Census Tract 4.01
|
34.10494
|
|
45
|
51
|
540
|
402
|
5.154e+10
|
Census Tract 4.02
|
22.95314
|
|
44
|
51
|
540
|
501
|
5.154e+10
|
Census Tract 5.01
|
34.68436
|
cville_tracts$tree_can <- cvl_tracts$tree_can
pal <- colorNumeric("plasma", reverse = TRUE, domain = cvl_tracts$tree_can)
cvl_tracts$tree_can <- as.numeric(cvl_tracts$tree_can)
cville_tracts$COUNTYFP <- as.numeric(cville_tracts$COUNTYFP)
m <- leaflet()%>%
addTiles()%>%
addPolygons(data = cville_tracts,
fillColor = ~pal(tree_can),
weight = 1,
opacity = 1,
color = "white",
fillOpacity = 0.6,
highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
popup = paste0("FIPS Code: ", cvl_tracts$GEOID, "<br>",
"Tree Canopy: ", cvl_tracts$tree_can,"<br>",
"Tract: ", cvl_tracts$NAMELSAD)) %>%
addLegend("bottomright", pal = pal, values = cvl_tracts$tree_can,
title = "Tree Canopy", opacity = 0.7)
m
Blockgroups
cvl_blkgps <- read.csv("Cville_Tree/nlcd_tree_cville_blkgps.csv")%>%
as.data.frame()
cvl_blkgps <- cvl_blkgps[order(cvl_blkgps$TRACTCE), ]
kable(head(cvl_blkgps))%>%
kable_styling(font_size = 12)
|
|
STATEFP
|
COUNTYFP
|
TRACTCE
|
BLKGRPCE
|
GEOID
|
NAMELSAD
|
tree_can
|
|
54
|
51
|
540
|
201
|
3
|
5.154e+11
|
Block Group 3
|
39.102459
|
|
55
|
51
|
540
|
201
|
1
|
5.154e+11
|
Block Group 1
|
43.246032
|
|
89
|
51
|
540
|
201
|
2
|
5.154e+11
|
Block Group 2
|
15.508475
|
|
6
|
51
|
540
|
202
|
2
|
5.154e+11
|
Block Group 2
|
9.651163
|
|
92
|
51
|
540
|
202
|
3
|
5.154e+11
|
Block Group 3
|
18.833333
|
|
108
|
51
|
540
|
202
|
1
|
5.154e+11
|
Block Group 1
|
8.282908
|
cville_blkgps$tree_can <- cvl_blkgps$tree_can
pal <- colorNumeric("plasma", reverse = TRUE, domain = cvl_blkgps$tree_can)
cvl_blkgps$tree_can <- as.numeric(cvl_blkgps$tree_can)
cville_blkgps$COUNTYFP <- as.numeric(cville_blkgps$COUNTYFP)
m <- leaflet()%>%
addTiles()%>%
addPolygons(data = cville_blkgps,
fillColor = ~pal(tree_can),
weight = 1,
opacity = 1,
color = "white",
fillOpacity = 0.6,
highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
popup = paste0("FIPS Code: ", cvl_blkgps$GEOID, "<br>",
"Tree Canopy: ", cvl_blkgps$tree_can,"<br>",
"Blockgroup: ", cvl_blkgps$NAMELSAD)) %>%
addLegend("bottomright", pal = pal, values = cvl_blkgps$tree_can,
title = "Tree Canopy", opacity = 0.7)
m
Blocks
cvl_blocks <- read.csv("Cville_Tree/nlcd_tree_cville_blocks.csv")%>%
as.data.frame()
kable(head(cvl_blocks))%>%
kable_styling(font_size = 12)
|
STATEFP10
|
COUNTYFP10
|
TRACTCE10
|
BLOCKCE10
|
GEOID10
|
NAME10
|
tree_can
|
|
51
|
3
|
10401
|
3025
|
5.100301e+14
|
Block 3025
|
74.666667
|
|
51
|
3
|
10401
|
3004
|
5.100301e+14
|
Block 3004
|
0.000000
|
|
51
|
3
|
10401
|
3005
|
5.100301e+14
|
Block 3005
|
25.907297
|
|
51
|
3
|
10401
|
3021
|
5.100301e+14
|
Block 3021
|
46.275294
|
|
51
|
3
|
10401
|
3016
|
5.100301e+14
|
Block 3016
|
44.680297
|
|
51
|
3
|
10401
|
3019
|
5.100301e+14
|
Block 3019
|
7.082353
|
# mean_block <- aggregate(cvl_blocks$tree_can, by = list(cvl_blocks$BLOCKCE10), FUN=mean)%>%
# round(3)
# colnames(mean_block) <- c("Blocks", "Tree_can")
cville_blocks$tree_can <- cvl_blocks$tree_can
pal <- colorNumeric("plasma", reverse = TRUE, domain = cvl_blocks$tree_can)
cvl_blocks$tree_can <- as.numeric(cvl_blocks$tree_can)
cville_blocks$COUNTYFP <- as.numeric(cville_blocks$COUNTYFP)
m <- leaflet()%>%
addTiles()%>%
addPolygons(data = cville_blocks,
fillColor = ~pal(tree_can),
weight = 1,
opacity = 1,
color = "white",
fillOpacity = 0.6,
highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
popup = paste0("FIPS Code: ", cvl_blocks$GEOID, "<br>",
"Tree Canopy: ", cvl_blocks$tree_can,"<br>",
"Block: ", cvl_blocks$NAME10)) %>%
addLegend("bottomright", pal = pal, values = cvl_blocks$tree_can,
title = "Tree Canopy", opacity = 0.7)
m